﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	//判断一个数是否为奇数
	
	//int num = 0;
	//scanf("%d", &num);
	//if (num % 2 == 1)           //如果num %（求余）2==1（1为真），则num为奇数
	//printf("%d是奇数\n", num);



	//输⼊⼀个整数，判断是否为奇数，如果是奇数打印是奇数，否则打印偶数。
	
	//int num = 0;
	//scanf("%d", &num);
	//if (num % 2 == 1)
	//	printf("%d是奇数\n", num);
	//else
	//	printf("%d是偶数\n", num);*/


	//分支中包含多条语句时

	//int age = 0;
	//scanf("%d", &age);
	//if (age >= 18)
	//	printf("成年了\n");      //默认在if和else语句中默认都只控制一条语句
	//    printf("可以谈恋爱了\n");
		//所以无论输入的值是<=18还是>=18都会输出可以谈恋爱了
	
	/*int age = 0;
	scanf("%d", &age);
	if (age >= 18)
	{
		printf("成年了\n");
		printf("可以谈恋爱了\n");
	}
	else
	{
		printf("未年了\n");
		printf("不可以早恋\n");
	}*/
    
    //嵌套if
	//如：：要求输⼊⼀个整数，判断输⼊的整数是0，还是正数或者负数。

	//int num = 0;
	//scanf("%d",& num);
	//if (num == 0)
	//	printf("输入的数字是0"); 
	//else                //在if，else语句中，else可以和另一个if语句连用，构成多重判断
	//{
	//	if (num > 0)
	//		printf("输入的数是正数");
	//	else
	//		printf("输入的数字是负数");
	//}

	//悬空else问题

	//int a = 0;
	//int b = 2;
	//if (a == 1)        //a=0，不为1，为假，不执行，执行else语句，但结果什么都没有
	//{                  //因为大括号外的if没有else语句相对应，故不输出结果 
	//	if (b == 2)
	//		printf("hehe\n");   //else总是和最近的if连用
	//	else
	//		printf("haha\n");
	//}

   //条件操作符
   
   //形式如下：exp1？exp2：exp3（意思为：如果exp1为真，则计算exp2，如果exp1为假，则计算exp3

//int a = 0;      
//int b = 0;
//scanf("%d", &a);
//   if (a > 5)   //exp1
//      b = 3;    //exp2
//else
//       b = -3;  //exp3
//      printf("%d\n", b);

  //使用条件操作符后

	/*int a = 0;
	int b = 0;
	scanf("%d", &a);
	
	b = a > 5 ? b = 3 : b = -3;
	printf("%d\n", b);*/

	//逻辑操作符&& ，II， ！

	//短路

	//int i = 0, a = 0, b = 2, c = 3, d = 4;  //a = 0
	//i = a++ && ++b && d++;    //a = 0，所以a&&b为假，故不执行后面的++b，d++，故i=0
	
	//printf("a = %d\n b = %d\n c = %d\nd = %d\ni=%d\n", a, b, c, d,i);
	//结果为1234，i=0

	//int i = 0, a = 1, b = 2, c = 3, d = 4;   //a = 1
	//i = a++ && ++b && d++;    //a = 1，b = 3所以a&&b为非零，则为真，故可执行后面的内容，所以i=1
	                            //&&中全部为非0（真），则执行打印abcd
	//printf("a = %d\n b = %d\n c = %d\nd = %d\ni=%d\n", a, b, c, d, i);
	//结果为2335
	
	//int i = 0, a = 1, b = 2, c = 3, d = 4;   
   
	//i = a++ || ++b || d++;      //判断真假，II只要有一个是真则执行打印abcd
	//	printf("a = %d\n b = %d\n c = %d\nd = %d\ni=%d\n", a, b, c, d, i);
	//	//结果为2234,i= 1  非零为真

     
int i = 0, a = 1, b = 2, c = 3, d = 4;     //规定0为假，非0为真
i = ++a && ++b && d++;    //a = 2, i = 2  非零为真，结果输出i = 1

printf("a = %d\n b = %d\n c = %d\nd = %d\ni=%d\n", a, b, c, d, i);
   //结果为2335


	return 0;    
}

	